Previous computer input devices, such as mice, include rotatable balls mounted within a housing, yet rotatably engaging a surface. As the housing of such a mouse translates across the surface, the ball rotates within the housing, engaging horizontal and vertical wheels that rotate against the ball, thereby indicating horizontal and vertical movement of the mouse across the surface. Building upon these primarily mechanical tracking devices, optical tracking devices have become available. Such devices optically track movement of a surface, rather than mechanically as with the devices described immediately above. These optical systems typically do not require wheels in contact with a movable ball, which may act as a common collection point for dust and dirt. But such devices lack the ability to track on any surface, requiring a suitable frictional interface between the ball and the surface. Moreover, these devices still require one moving part, the ball. In addition, aliasing artifacts may cause the cursor to skip, rather than move fluidly during rapid motion of the device.
Still other optical devices place the pattern on the tracking surface (e.g., a mouse pad), rather than on the rotatable ball, thereby using the mouse pad to generate optical tracking information. Although such devices are able to eliminate the moving ball, they are less universal by requiring a specific tracking surface to operate.
Other more recent optical tracking devices have emerged that have eliminated the need for a patterned ball or mouse pad. One such device utilizes an LED to project light across the tracking surface at a grazing angle to the tracking surface. The mouse then collects tracking information by detecting dark shadows cast by high points in the surface texture, which appear as dark spots. This device eliminates the moving ball of previous devices, and is useful on a variety of surfaces. However, smooth or glossy surfaces may prove difficult to track upon, because they may generate no shadows from texture and present a low contrast image that may not provide adequate features upon which to track.
Other devices have been developed for tracking movement of a tracking surface, wherein the tracking surface is a finger of the user. Such devices are particularly useful in handheld and laptop devices, such as personal digital assistants, cellular phones, laptop computers, as well as any other electronic device where it is desirable to locate a data input device on the device itself, for interaction with a tracking surface comprising human skin, such as a fingertip. For example, some devices include an upwardly extending post mounted on several force sensors. As the user places a finger upon the top of the post and applies pressure in any direction, the resultant forces on the force sensors may be correlated to movement of a cursor, or pointer, on a display. Such systems suffer from several drawbacks. For example, such systems do not track the actual location information relating to the location of the user's moving hand and finger with respect to the device, but instead merely rely upon merely directional information to indicate the direction of cursor movement on the display and force information to indicate the proportional speed of cursor movement on the display. In other words, while maintaining a fingertip in one position, the user increases pressure on the post in a particular lateral direction to move the cursor. These systems may be difficult to use for some users because they function solely on direction and force information, rather than position information, as is typical with a standard mouse, with which most users are accustomed and may find more intuitive. In addition, such systems may suffer from cursor drift, wherein no finger engages the post, but one or more of the force sensors incorrectly senses a pressure. The cursor then drifts across the display, rather than maintaining its position, without any finger pressure applied to the post. Cursor drift is undesirable because the cursor moves across the display, without direction by the user.